class_name ControllerComponent_Motion
extends ControllerComponent

#region 属性
var target_vel:Vector2
var target_angular_vel:float
#endregion
#region 字段
#endregion
#region 信号
#endregion

#region 虚方法（子类必须实现）
func update_vel(delta):
	pass
#endregion
#region 基类方法
#endregion
#region 公共方法
func get_target_vel(delta:float) -> Vector2:
	return target_vel
func get_target_angular_vel(delta:float) -> float:
	return target_angular_vel
#endregion
#region 私有方法
#endregion
#region 生命周期函数
func _physics_process(delta: float) -> void:
	update_vel(delta)
	var attr:Attribute = entity.entity_data.find_attribute("BaseVel")
	if attr:
		attr.force_set_base_value(get_target_vel(delta))
	attr = entity.entity_data.find_attribute("AngularVel")
	if attr:
		attr.force_set_base_value(get_target_angular_vel(delta))
	super._physics_process(delta)
#endregion
